README file 6-6-94 CU-SeeMe0.70b1 BETA VERSION for (self-selected) Testers ONLY CU-SeeMe0.70b1 is now available on gated.cornell.edu /pub/video for anonymous ftp. ***WARNING*** This is beta software. It has been alpha tested for a couple of weeks, and there are still a few problems. If you pick it up and use it, you are volunteering to be a beta tester. It has been fairly stable on quite a few different machines, but your milage may vary. Actually, it's a little less solid than we would like to have it at release, but the problems are now becoming pretty difficult to track down, and there has been a substantial demand. The principle enhancement in this version is the inclusion of Audio, based on Charlie Kline's Maven code. It works with the new reflector and supports multiparty operation. BUT. ***Now Hear This*** (and tell your friends): AUDIO WILL NOT WORK CONNECTING WITH A MODEM!!! I know it would be great if it did, but it just doesn't. You need at least 32K bits/sec just for the audio (when speaking or listening) and modems only do 14.4K. If you decide to be a tester, watch out for the following: * Don't run CU-SeeMe0.70b1 and FTPd at the same time. At least on a Quadra 840AV it crashes after a while. * Problems have been reported with LC's and Quadra 650's using Spigots. * One particular Powerbook 180 and one PowerMac 8100 had crashes, but others worked fine. * Results trying to use MacRecorder (on older Mac's, like the venerable cx and ci, which don't have built-in audio) have been problematic. We've ordered a MacRecorder and will try to come up with a clear understanding. Any info/experience would be welcome. * Use the new reflector. If you hook to a reflector, and it's running the new code, you will probably get a Message Of The Day, telling you whatever the reflector operator wants you to know. 70b1 will probably work with the old reflector code for video, but there may be problems with the audio. Shaking out these model-specific problems may take a while, since it's really hard for us to reproduce all the variations here. If you do experience crashes (and still want to continue), please try without any extra inits, or perhaps without other apps running; we have had problems with the moire screensaver, for example. ------ New Stuff in 0.70 ------- REFLECTOR There is also a new version of the reflector, which you need to run to have the audio properly handled. (Note: we are one release further to b2 compared with the version released last week. You need this new version to support the new MOTD feature in the reflector/client.) It will also permit the use of stand-alone Maven. It is on the usual anonymous ftp site, gated.cornell.edu /pub/video. AUDIO Audio is controlled from a small window and works just like Maven. You can choose Push-To-Talk mode (PTT) or set a squelch level with a small pointer to the left of the audio-level bar. There are boxes in the audio window to turn receive and send on and off entirely. Or you can turn off audio from a particular particpant by pushing the speaker button under their video window (they will get the mic on your window X'd to indicate you won't hear when they speak). Also, you can choose to turn off receiving from standalone Maven clients who connect to the reflector (a temporary hack until we have a list-window for participants not displaying video). If you push the mic button on someone's window, you establish a private talk channel to them. Push again to go back to general conference audio sending. CONFERENCE MENU The Conections menu has been renamed to "Conference" since it now includes an item to open the Audio Window (if you've closed it). In future, there will be more conference-management related items on this menu. Of course, as time goes by, we may need to re-organize the menus to make sense of future developments which aren't even gleams in the eye today. THE EYE Also on remote window button bars is an eye-con (sorry, couldn't resist). If open, it means that the person in the window is looking at you-- or actually that they have a window open on their desktop showing your video stream. If they close the window, the eye at your end closes. When the eye is open, it looks a little sinistre, some folks think. Icons are still being edited. MOTD With the new reflector, you can set up a message which will be displayed to folks as they connect. (If they use 0.70 or later.) If you operate a reflector, you might want to use this facility to explain policies, etc. that apply to use of your reflector. SAVE WINDOW POSITIONS New on the File menu is an item you can use to save current window positions. Until you use it, they open tiling left to right. You probably want to move them around while you remember the order they came up and then save. The Participants menu lists the order that windows open as you initially connect to a reflector. You can go back to defaults by chucking your preferences file. This facility will be improved to make it easier to get the results you want. THE BLACK BORDER If part of the video portion of a CU-SeeMe window is covered, the program uses QuickDraw to move video into the window. Otherwise, optimized routines draw directly to the screen. Particularly on a slower Mac, drawing with QuickDraw is very slow. So you will know when this is happening, a black border shows on such a window. PREFERENCES LIMIT ON NUMBER OF WINDOWS You can set a preference for the maximum number of windows you want to show at one time (default 8, set between 2 and 8), including your local window. This feature will help if you have limited screen real-estate. CONFERENCE ID New on the Connection dialog is a box for conference ID, default of zero. The new reflector will reject all participants with the wrong number, and it can be configured with a conference ID other than zero. If both reflector and participants go with the defaults (zero), it works the way it always has. -------------Basic CU-SeeMe Info--------------- The following info has been lightly updated for version 0.70, but is basically the info about the prior version 0.60. A Macintosh and PC videoconferencing program, CU-SeeMe, is available free from Cornell University under copyright of Cornell and its collaborators. CU-SeeMe version 0.70 provides a one-to-one connection, or by use of a reflector, a one-to-many, a several-to-several, or a several-to-many conference depending on user needs and hardware capabilities. It displays 4-bit grayscale video windows at 160x120 pixels or at double that diameter, and does now includes audio. So far as we know, CU-SeeMe was the first and may still be the only software available for the Macintosh which supports real-time multi-party videoconferencing on the Internet. CU-SeeMe is intended to provide useful conferencing at minimal cost. Receiving requires only a Mac with a screen capable of displaying 16 grays and a connection to the Internet. Sending requires the same plus a camera and either an AV-Mac or a SuperMac VideoSpigot board, Quicktime and SpigotVDIG extensions added to the system folder. At this time CU-SeeMe runs on the Macintosh (with audio) and the PC (without audio) using an IP network connection. A PC version is under development and expected in early 1994. With CU-SeeMe each participant can decide to be a sender, a receiver, or both. WARNING: Although being improved with each version, CU-SeeMe is not mature production software--USE AT YOUR OWN RISK. And also, PLEASE TREAT THE INTERNET KINDLY--keep b/w limits set down under 100kbps, or less if you share limited bandwidth with others. Many, many folks connected to the Internet can use CU-SeeMe with default settings and cause no problem to anyone else; but unfortunately, not everyone. If you don't know whether using CU-SeeMe will mess up the network for someone else, CHECK IT OUT first, please. CU-SeeMe was initially written for the Macintosh by Tim Dorcey with design assistance and sponsorship by Richard Cogger of the Advanced Technology group in the Network Resources division of Cornell University's Information Technology department (CIT). Important early contributions came from: Cornell University Medical Colleges (CUMC), Scott Brim, and John Lynn. Since Oct. 1, 1993, the CU-SeeMe Project receives funding from the National Science Foundation. A very significant collaborative effort at Cornell University Medical Colleges (CUMC) is contributing substantial expertise and code. Development contributers to CU-SeeMe0.70: Cornell: Richard Cogger (Project Director/PI), Tim Dorcey, Scott Brim (Co-PI), John Lynn, Larry Chace; CUMC: Steve Erde, Aaron Freimark, Aaron Giles. This material is partially based on work sponsored by the National Science Foundation under Cooperative Agreement No. NCR-9318337. The Government has certain rights in this material. *****The fine print***** Copyright 1993, 1994, Cornell University Cornell hereby grants permission to use, copy, modify, and distribute this program for any purpose and without fee, provided that these copyright and permission notices, and those of Cornell's collaborators included below, appear on all copies and supporting documentation, the name of Cornell not be used in advertising or publicity pertaining to distribution of the program without specific prior permission, notice be given in supporting documentation that copying and distribution is by permission of Cornell. CORNELL MAKES NO REPRESENTATIONS OR WARRANTEES, EXPRESS OR IMPLIED. By way of example, but not limitation, CORNELL MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THIS SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER RIGHTS. Cornell shall not be held liable for any liability with respect to any claim by the user or any other party arising from use of the program. The audio portion of CU-SeeMe was provided by Charley Kline's Maven. Charley Kline, cvk@uiuc.edu University of Illinois Computing and Communication Services 28 Feb 1994 Copyright (c) 1994 by Charley Kline and the University of Illinois Board of Trustees. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of Illinois, Urbana and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****What do you need to use CU-SeeMe?***** Specifications to RECEIVE video: - Macintosh platform with a 68020 processor or higher - System 7 or higher operating system (it "may" run on system 6.0.7 and above) - Ability to display 16-level-grayscale (e.g. any color Mac) - an IP network connection - MacTCP - CU-SeeMe0.40 file (file size is approximately 110K) Specifications to SEND video: - The specifications to receive video mentioned above - Video Spigot hardware (street price approx. $380.) and vdig or an AV-Mac (vdig built into system) - camera with NTSC 1vpp output (like a camcorder) and RCA cable. - Quicktime installed (requires approximately 2mg memory) - SpigotVDIG Quicktime component (driver) if you use the Spigot (On disk approx. 300kb.) *****To obtain CU-SeeMe***** Use ftp (File Transfer Protocol) to: Server: gated.cornell.edu UserID: anonymous Password: directory: /pub/video Download the latest README file, if there is one later than the date at the top of this file you are reading. Then get the application and other files you need. More detailed instructions for doing ftp downloads are further along in this README. All of the software you need is available on the server except for the Mac operating system and Quicktime. MacTCP is available on the server, but notice please: MacTCP is COMMERCIAL SOFTWARE. A special license from Apple allows Cornell to distribute MacTCP with our software. If you get it from our server, along with CU-SeeMe, you DO NOT have the right to use it for any other purpose; you must obtain that right seperately. (To purchase MacTCP for use with other applications contact Apple catalog sales 1-800-795-1000 and ask for the "TCP/IP Connection" product. TCP/IP Connection is $59 for a single user and $128 for a 20-user site license.) Use MacTCP version 1.1.1 with System 7.1. Regarding the vdig (driver) for the SuperMac VideoSpigot: There are two spigot vdigs on the server. If you have Quicktime 1.5 or 1.0 the one called SpigotVDIG is the best. The other one on the server should only be used if all else fails. Caution: If you have Quicktime 1.5, you are supposed to need the spigot vdig called VDIG 1.5b18. ***But we have found that Mac's freeze when you move the mouse after starting to send video with the 1.5b18 version.*** SuperMac tells us recently that 1.5b18 seems to work with Quicktime 1.6.1 but you may need to boot with monitors set to millions of colors and then change to what you want. We continue to find 1.0 best. However note that some Macs some times wind up showing only "snow" in the local video window (and transmitting it). If that happens, you must POWER OFF and start up to get the Spigot to reset; just Restart will not do it. ****Where to get a camera**** A small monochrome CCD camera, suitable for CU-SeeMe is available from: Howard & Associates 545 Calle San Pablo Phone 805-383-7444 Camarillo, CA 93012-8550 FAX 383-7442 AOL: HOWENT for about $200 or a bit more. The price varies from time to time depending on the dollar/Yen situation. Howard Enterprises will fax you complete specs and the latest price list. A few specs: - The part number/name is: NCK - 9102 TeleCamera - 1/3" B/W FT CCD Pixels 400H x 504V (Effective 378H x 486v) - Video Out 1.0vpp 75ohm (Negative) RCA connector - Electronic Auto Iris (Magnification 260) - Resolution: Horiz Lines >230 picture center, >200 edge - S/N >40db - Min Illumination: 8 lux or less - Focal length 6.1 mm, Focal Distance 600mm - Power 12VDC 130mA - Dimensions 43 x 67 x 120 mm Developer Comments: Subjectively, it seems to give a picture somewhat less crisp than a typical camcorder, but perfectly useable. At 28-30 inches, it seems to frame about the right size for my taste. He has color models too, which provide better balance of tones even in b&w, but a little less light sensitivity. Note with earlier versions of CU-SeeMe, the lower sensitivity was a problem, but with 0.60, the brightness and contrast controls in the software allow you to compensate. The color model is probably a better bet and worth the small extra cost. Please send comments and suggestions to r.cogger@cornell.edu. Please send bug reports to cu-seeme-bugs@cornell.edu. You can be a great help in making CU-SeeMe a good, stable application. Be Seeing You. The CU-SeeMe Development Team Cornell University Information Technologies (CIT) Cornell University Ithaca, New York ************************************************************ HOW TO OPERATE CU-SeeMe 1. Be sure the screen is switched to a resolution that includes 16 grays (with the Monitors control panel). Settings that will work are: 16 grays, 256 grays, 256 colors, thousands of colors, millions of colors. (Note that with the previous version 0.42, only 16 grays worked well.) 2. Launch CU-SeeMe 0.70. If it's the first time, a "Preferences" dialog box will appear. Type in your name (to appear on the window where your video is displayed, both locally and remotely). Check other preferences. These settings are stored in a document in your Preferences Folder (in the System Folder). Subsequently, you may access these settings with the Preferences... item on the Edit menu. 3. When the program appears: (a) If you see a video window on the top left of the screen, the program believes you have a VideoSpigot installed with the Quicktime extension and the SpigotVDIG component--or that you have an AV-Mac. (b) If you see yourself in the video window, you have a camera plugged in and operating. You will see *WAITING* below your local window. (c) If you see no video window but get only a menu-bar, you are in receive-only mode as the program does not believe you have a VideoSpigot with vdig or an AV-Mac 4. By default, a button bar appears below each video window and a rates bar below the button bar shows statistics on framerate and bandwidth used. You can get rid of all button bars with a checkbox in the Preferences... dialog. 5. If you have a send-equipped Mac running the program, waiting for a request to send, the bar under the local window will show *WAITING* until someone connects to you or you connect to someone. The framerate indicator shows the speed of framegrabbing, which depends on the resolution you choose and the cpu power available, and possibly on the screendepth set with the Monitors control panel. It will be highest on a fast machine, running in the foreground, capturing the small size ("Standard" resolution) with the screen set to 16 grays. If you choose to mirror the image, have part of it off the screen or covered by another window, the rate will be slower. With buttons in the local window button bar, you can mirror the image (makes it easier to position), "pause" sending, or bring up sets of controls to adjust transmission, compression, brightness and contrast, and audio parameters. 6. To connect, for a two-party conference, choose Connect from the Connection menu. Type in an IP address (dot notation, no DNS, sorry) of a Spigot-equipped Mac running CU-SeeMe 0.70, 0.60 or 0.42 (Earlier versions are NOT compatible). For a multiparty conference, enter the IP address of a reflector. (See "How to Test CU-SeeMe following this section.) If all is well, and no one else is already connected to the Mac you designated, it will start sending an image to you. If you are calling a reflector, you may be the only one connected, in which case you will see no windows until someone else connects. If the reflector does not respond immediately, the rates bar will show *CONNECTING*. If there is no answer, you'll get a "no response" message. 7. As an alternative to repeatedly typing in IP addresses, you may use Edit Nicknames from the Edit menu to set up Nicknames for IP addresses. Then use Connect To > from the Connection menu to make connections. 8. When someone requests a connection (or you open a connection) and you start sending--you will also see, in addition to framerate, an indication of bandwidth in Kbits/sec. On the right end of the bar under the local window is shown a "cap" which limits bandwidth used for sending and hence framerate, depending on amount of motion. The cap can be adjusted by a control in the Transmission panel (use the rightmost button in the button bar and choose Transmission from the popup menu. If the other end of a connection reports packet loss, the program assumes network congestion and automatically lowers the cap. It will be adjusted back up toward the preset value if loss reports stop. 9. New with CU-SeeMe0.60, was the ability to start and stop sending or receiving on the fly, without disconnecting and reconnecting. You may wish to "drop in" on a conference in receive-only mode, to see who's there, and then start sending when you see you would not be over-burdening the conference. Also new is the "pause" button-- it's use will stop the capturing of new frames, effectively freezing the video. Video will continue to be sent on the aging timer at a very low rate. Use of the pause feature is preferable to leaving an active camera on an empty room. If you want a message to be displayed, type it before pausing. 10. The Participants menu (also new in 0.60) gives the means for opening particpant windows if they have been closed. It shows names of conference participants and their status. The local window is listed first, followed by conference senders, followed by receive-only participants("lurkers"). Presently, you can have up to 7 remote windows plus the local window for a total of 8. Up to 16 participants will be listed on the menu. When a participant disconnects from a conference, the rates bar will show *DISCONNECTED* or, if no packets are received for a while, it will show *TIMED OUT*. If it shows no motion and very low framerate and bandwidth, it has probably been "paused." 11. Each time a remote video window opens or is resized (or you connect to "self" for testing) , a middle-gray field appears followed by an impromptu demo of the frame differencing and aging algorithms. The main compression in CU-SeeMe is achieved by comparing successive captured video frames and sending only the parts that change. Only changed 8x8 pixel squares are sent, except that if a square remains unchanged for a number of frames, it is sent anyway to heal image artifacts resulting from lost packets. Initially, the "age" of each square within the Refresh Interval is set to a random number, so the window will fill in gradually or as the subject moves. You can adjust the Refresh Interval in the Transmission panel. 12. CU-SeeMe windows presently come in two sizes; 160x120 and 320x240. By default, the smaller size frames are grabbed and displayed. You can choose the larger window size in the Compression panel. (Caution: frame grabbers are generally much faster at producing the smaller windows.) Whichever size you transmit, you can display at either size. You can also display remote windows at either size. If you are getting the small size and displaying the large, three quarters of the pixels are generated by simple linear interpolation. (It's amazing it works as well as it does.) Using the zoom box (upper right in title bar) on the window will allow you to toggle quickly between large and small window sizes. 13. The VDIG for the Spigot board maintains a fifo (first in first out) of frames, several frames deep, so each frame grabbed is three or four frames old. Each time the program grabs a frame, the VDIG gets another one and puts it at the far end of the fifo cue. When running at 30 fps, a 3-frame delay is not a big problem, but at 10 or fewer fps, the delay becomes significant in terms of lip-sync with telephone audio. We are now working with SuperMac to avoid this problem. Look for improvements in a future release. 14. The Message Crawl feature allows banner messages to appear and scroll on the screen. Simply type (with CU-SeeMe in the foreground), and the characters you type will be displayed at the bottom of your local video window and transmitted with your video. (Note that if you mirror your local image, you will have to read backwards as you type! But remote viewers will see it correctly.) This admittedly "cute" feature is actually useful for brief messages like "Call me. 515-222-3333." If you type the up-arrow, you can move the line to the top of the screen; down-arrow puts it back at the bottom. Left-arrow will animate the text, starting it scrolling to the left. A second left-arrow will speed it up. Right-arrow reverses the effect (slows or stops the crawl). Please remember that a scrolling message creates more movement eating up bandwidth. BE KIND TO THE INTERNET and other CU-SeeMe senders and receivers. Use scrolling sparingly; e.g., don't go away and leave a picture up with a message scrolling. 15. Buttons on the button bar on remote windows will bring up a stats panel or an info panel. The Stats panel shows amount of data sent and received and loss rates, both as measured locally for data received and what the other end is reporting. Info currently shows just the IP address and the version of CU-SeeMe in use remotely, stay tuned. ************************************************************ How To Test CU-SeeMe To connect for a CU-SeeMe video conference, you must have the IP address of another CU-SeeMe user or the address of a CU-SeeMe reflector. If calling another user, the user must have CU-SeeMe running in *WAITING* status on their desktop. Use Connect or Connect to > in the Connections menu. We suggest that you begin by using two Macs, one connecting to the other, for a first test of CU-SeeMe. You will need to use a reflector to have a multiparty conference on the Internet. The CU-SeeMe reflector program is a Unix program which we have tested so far only on Sun Sparc workstations. If you are not familiar with IP networks, reflectors and/or your particular network set-up, ask your system administrator for help in operating a CU-SeeMe reflector. Instructions on how to operate a reflector follow. *********************************************************** CU-SeeMe Maillist For anyone interested in following developments in CU-SeeMe or its use, an automated maillist has been established. The list is provided for unrestricted discussion of the CU-SeeMe packet video software under development by the Cornell CU-SeeMe project and its collaborators. Developers and project management all read the list. Currently, there are over 460 members on the list, and there are usually several messages each day. We, and other users, would also like to hear about and discuss innovative uses of CU-SeeMe. Please write and tell us your story. To join the list, send a message with the following line as the entire message body to listserv@cornell.edu: subscribe cu-seeme-l (Substitute your actual name, please; it's amazing how many don't.) You should receive a confirming message with extensive instructions on use of the list. You can send mail to be distributed to the list to: cu-seeme-l@cornell.edu. Please be sure to send to this address ONLY when you want your message redistributed. ************************************************************ How to FTP CU-SeeMe Materials To obtain CU-SeeMe, use ftp (file transfer protocol) from gated.cornell.edu in the directory /pub/video. The software (CU-SeeMe, vdig, etc.) are stored in MacBinary II format which will automatically be unpacked by Fetch. Documentation files have README and version numbers of corresponding software in their names and are simple text. Using Fetch to ftp: Fetch software may be used to ftp your CU-SeeMe software The Host is gated.cornell.edu, the User ID is "anonymous" and the directory is /pub/video. Be sure to select the 0.70 version (later versions are for developers) of CU-SeeMe and the latest ReadMe file. Select "Automatic" for file type and use "get file" to transfer the software to your desktop. The CU-SeeMe ReadMe file has all of the information included in this e-mail. Using Mosaic to ftp: NCSA's Mosaic software can be used to ftp your CU-SeeMe software via gopher. Select "Open URL" from the file menu. Type gopher://gated.cornell.edu/ in the URL window. Select the directory /pub/video. Be sure to select the 0.70 version of CU-SeeMe and the latest ReadMe file. The CU-SeeMe ReadMe file has all of the information included in this e-mail, plus instructions for operating CU-SeeMe. ************************************************************ HOW TO OPERATE A CU-SeeMe REFLECTOR: Obtain software and documentation -- a tar file may be obtained via anonymous ftp from gated.cornell.edu in directory /pub/video/reflector. Untar and install in the usual way on a Sun Sparc with a good Internet connection. (Reporedly, it also runs on SGI's.) The README is available as txt file seperately if you want to read about it first before downloading. We have carried up to 16 participants on a reflector (a real bash). But give some thought to how reflectors are linked together and how many streams are flowing on which paths. Currently, CU-SeeMe limits open windows to 8, but trying to have 8 folks each send one stream and receive 7 thru the same reflector, assuming it has just one ethernet interface, would mean 8 streams in and 56 out. If each tries to get 100Kbps through at some point in time, you would be trying to get 6.4 Mbit/sec thru the ethernet. That would probably be deep into the collision realm. With reflector networking features, you can set up a reflector net which could give a fairly large conference; PLEASE PAY ATTENTION TO THE LOAD YOU PUT ON THE INTERNET.